查看原文
其他

Oxlint——新JavaScript Linter,比ESLint快50-100倍

小懒 FED实验室 2024-02-12
关注下方公众号,获取更多热点资讯
大家好,今天是我坚持日更的第106天。相信坚持的力量!欢迎点赞关注。

近日 Hacker News 上的一个 Oxlint 的贴子引起前端圈子的广泛关注,评论达到 190+ 次。

本文将详述阐述 Oxlint 的概念、用法及其核心优势。

1.Oxlint 介绍

Oxlint 是 Oxc 项目下的一款基于 Rust 编写的 Linter 工具,当前最新版本 v0.0.20,旨在捕获错误或无用的代码,默认情况下无需任何配置。Oxc(Oxidation Compiler) 正在为 JavaScript 和 TypeScript 创建一系列高性能工具。Oxc 正在构建一个解析器、linter、格式化程序、转换器、压缩器、解析器等,这些全部用 Rust 编写,性能表现优秀。

Oxc 项目与 Biome 和 Ruff 的理念相同:

  • JavaScript 工具可以用性能更强的语言重写。
  • 集成的工具链可以提高效率,而这些效率是一套独立的工具所不具备的。

2.Oxlint 的优势

2.1.出色的性能

Oxlint 在 Hacker News 上被引发热烈讨论,主要原因还是它的优秀性能。性能提升的主要原因是,Oxlint 是专为性能而设计的,利用 Rust 和并行处理作为关键因素。从下图的 Linter Benchmark 可以看出,它的性能比 ESLint 快 50 - 100 倍

另一方面,从尤大的推文中也可以得到进一步论证:

2.2.检查正确性

Oxlint 默认用于识别错误、冗余或令人困惑的代码,更注重正确性而不是不必要的挑剔规则(按性能、可疑、迂腐或样式进行分类),这些规则默认情况下是禁用的。

2.3.易用性

建立新的 JavaScript / TypeScript 代码库变得越来越复杂。很有可能会遇到工具之间的兼容性问题,从而浪费大量时间。

这就是将 Oxlint 设计为开箱即用的零配置工具的原因,甚至不需要Node.js。大多数调整都可以通过命令行进行,从 ESLint 配置文件读取配置文件的工作目前正在进行中。

2.4.增强诊断功能

理解代码检查工具的提示信息可能会很有挑战性。Oxlint 旨在通过准确定位根本原因并提供有帮助的提示信息来简化此过程,从而节省宝贵的时间,无需阅读冗长的规则文档。

在 vscode 资源库中运行 oxlint -D perf :

2.5.统一的规则

目前,Oxlint 还没有提供插件系统,但其团队正在积极整合来自 TypeScript、React、Jest、Unicorn、JSX-a11y 和 Import 等流行插件的规则。

3.Oxlint 的用法

当前阶段,Oxlint 并非旨在完全取代 ESLint,毕竟 ESLint 生态已经很完善了,有些时候我们并不关注它的性能问题,但当 ESLint 的速度成为工作流程瓶颈时,可以把它当做一个增强工具。

我们常见的使用 ESLint 的场景有两种:

1)代码提交时:

在 Git 提交的时候进行相关代码约束,比如我们通常会在项目中增加 lint-stagedhuskey

"lint-staged": {
  "*.{js,jsx}": [
    "eslint --fix"
  ],
},

2)代码保存时:

代码保存时,一般通过配置 ESLint 插件来实现,比如在 VSCode 中配置 ESLint。

在大型项目中使用时,相比 ESLint 的几十秒,Oxlint 只需要几秒就可以完成。这对于我们日常的开发体验和效率将有一个质的提升。

要在JavaScript / TypeScript代码库中测试 Oxlint,只需在存储库的根目录中执行以下命令:

npx oxlint@latest
# or
pnpm dlx oxlint@latest
# or
yarn dlx oxlint@latest
# or
bunx oxlint@latest
# or
deno run npm:oxlint@latest

总结

在过去五年中,Rust 凭借其令人难以置信的开发体验和灵活性,成为最受欢迎和最受喜爱的 15 种编程语言之一,越来越多的前端工具链被使用 Rust 重构。Oxlint 凭借着众多优势被广大开发者所喜爱,期待 Oxlint 未来能有更好的表现。

大家都在看

继续滑动看下一个

Oxlint——新JavaScript Linter,比ESLint快50-100倍

小懒 FED实验室
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存